import Big from "big.js";

/**
 * 数学运算： 加法
 * 解决浮点数问题
 * @param {*} x
 * @param {*} y
 * @param {*} n
 * @example
 * plus(0.1, 0.2, 0.3) // 0.6
 */
export function plus(x: any = 0, y: any = 0, ...n: any[]): any {
  if (n.length) { return plus(Big(x).plus(y), ...n); }
  return Big(x).plus(y) * 1;
}

/**
 * 数学运算： 减法
 * 解决浮点数问题
 * @param {*} x
 * @param {*} y
 * @param {*} n
 * @example
 * minus(0.4, 0.2, 0.1) // 0.1
 */
export function minus(x: any = 0, y: any = 0, ...n: any[]): any {
  if (n.length) { return minus(Big(x).minus(y), ...n); }
  return Big(x).minus(y) * 1;
}

export function toFixed(n: any, p: any): any {
  return Big(n).toFixed(p) * 1;
}

export default {
  plus,
  minus,
  toFixed
};
